<?php

class CobranzasController extends AppController {
    var $name = 'Cobranzas';
    var $uses = array('Material','Cliente','Documento','TiendaLocal', 'BloqueoFactura', 'FacturaCobranza');
    var $components = array('Utilitario','Interfaz','Vista','Maestro','Util');
    var $helpers = array('Html','Ajax','Javascript','Vista','Interfaz');
    var $layout = "ajax";

    function beforeFilter(){
        $this->validar();
    }
    
    function index($busq=null) {
        $this->permisos_menu_individual('COBRANZAS');
        $this->bloquear_buscador();
        $this->Vista->title("COBRANZAS");
    }
  
    public function filtro() {
        $this->permisos_accion_individual('COBRANZAS', 'FILTRO');

        $tiendas = $this->Session->read('tiendas_disponibles');
        $listaTiendas = $this->Maestro->listar_tienda_usuarios($tiendas);
        $listaTiendasPermitidas = $this->Util->tiendasActivas($listaTiendas);
        $this->set('listaTiendas', $listaTiendasPermitidas);
    }

    public function busqueda_filtro() {
        $this->permisos_menu_individual('COBRANZAS');
        if(!$this->Vista->empyt($this->request->data, array('tiendas', 'sistemas'))){
            extract($this->request->data);
            $cli = substr($cliente, 1);
            $datosCliente = $this->Cliente->find('first', array('fields' => array('documento', 'nombre'), 'conditions' => array('documento ILIKE' => '%'.$cli.'%')));
            $this->Vista->title("COBRANZAS: ".$datosCliente['Cliente']['documento']." - ".$datosCliente['Cliente']['nombre']);
            !empty($tiendas) ? $tiendas = $this->TiendaLocal->find('first', array('fields' => 'codigo', 'conditions' => array('id' => $tiendas))) : $tiendas['TiendaLocal']['codigo'] = $tiendas;
            !empty($sistemas) ? $condicion = "WHERE sistema IN (".implode(",",$sistemas).")" : $condicion = '';
            $objCobranza = $this->Maestro->modelo('punto_maestros', 'Material');
            $datosCobranza = $objCobranza->query("SELECT * FROM cobranzas.fnc_deudas_cliente('$cliente', 1, '".$tiendas['TiendaLocal']['codigo']."') AS (id bigint, tienda character varying(5), numfac character varying(25), fecemi date, monto double precision, pagado double precision, deuda double precision, usuario character(30), estatus bigint, documento character varying(15), sistema integer) $condicion");
            for ($i = 0; $i < count($datosCobranza); $i++) {
                $estatus = $this->BloqueoFactura->find('first', array('fields' => array('observacion'), 'conditions' => array('BloqueoFactura.tienda' => $datosCobranza[$i][0]['tienda'], 'BloqueoFactura.numfac' => $datosCobranza[$i][0]['numfac'], 'BloqueoFactura.sistema' => $datosCobranza[$i][0]['sistema'] )));
                empty($estatus) ? $estatus = 1 : $estatus = 0;
                $datosCobranza[$i][0]['estatus'] = $estatus;
                $data[] = $datosCobranza[$i];
            }
            if(count($data)>0){
                $this->Vista->cerrar_ventana($vent_filtro);
                $this->set('data', $data);
            }else{
                $this->Vista->mensaje("No exite el cliente", 'ERROR');
            }
        }else{
            $this->Vista->mensaje("Faltan datos requeridos!!!", 'ERROR');
        }
    }
    
    public function ver($datos) {
        $this->permisos_accion_individual('COBRANZAS', 'ESTATUS', 'VER');
        $datos =  explode(",", $this->Interfaz->id($datos));
        $datosCliente = $this->Cliente->find('first', array('fields' => array('id', 'documento', 'nombre'), 'conditions' => array('documento ILIKE' => '%'.$datos[9].'%')));
        $obs = $this->BloqueoFactura->find('first', array('fields' => array('observacion'), 'conditions' => array('factura_id' => $datos[0])));
        //$estatus = $this->BloqueoFactura->find('first', array('fields' => array('observacion'), 'conditions' => array('BloqueoFactura.tienda' => $datos[1], 'BloqueoFactura.numfac' => $datos[2], 'BloqueoFactura.sistema' => $datos[10] )));
        //empty($estatus) ? $estatus=1 : $estatus=0;
        $obs ? $obs = $obs['BloqueoFactura']['observacion'] : $obs = '';
        
        $fecha = date("d-m-Y", strtotime($datos[3]));
        $this->set('obs', $obs);
        $this->set('estatus', $datos[8]);
        $this->set('tienda', $datos[1]);
        $this->set('fac_id', $datos[0]);
        $this->set('numfac', $datos[2]);
        $this->set('fecha', $fecha);
        $this->set('monto', $datos[4]);
        $this->set('pagado', $datos[5]);
        $this->set('sistema', $datos[10]);
        $this->set('cedcli', $datosCliente['Cliente']['documento']);
        $this->set('nomcli', $datosCliente['Cliente']['nombre']);
        $this->set('cliente_id', $datosCliente['Cliente']['id']);
    }

    public function bloqueo() {
        if($this->Vista->empyt($this->request->data, array())){
            $this->Vista->mensaje("Por favor, escriba la observacion", 'ERROR');
        }else{
            extract($this->request->data);
            $usuario = $this->UsuarioPunto->find('first', array('conditions' => array('usuario_id' => $this->Interfaz->id($usuario_id))));
            $fac_id = $this->Interfaz->id($fac_id);
            $tienda = $this->Interfaz->id($tienda);
            $numfac = $this->Interfaz->id($numfac);
            $sistema = $this->Interfaz->id($sistema);
            $cliente_id = $this->Interfaz->id($cliente_id);
            $vent_filtro = $this->Interfaz->id($vent_filtro);
            $this->FacturaCobranza->query('BEGIN WORK');
                $CambEst['FacturaCobranza']['id'] = $fac_id;
                $CambEst['FacturaCobranza']['estatus'] = 0;
                $BloqFact['BloqueoFactura']['factura_id'] = $fac_id;
                $BloqFact['BloqueoFactura']['tienda'] = $tienda;
                $BloqFact['BloqueoFactura']['numfac'] = $numfac;
                $BloqFact['BloqueoFactura']['sistema'] = $sistema;
                $BloqFact['BloqueoFactura']['usuario'] = $usuario['Usuario']['usuario'];
                $BloqFact['BloqueoFactura']['observacion'] = $this->Interfaz->mayuscula($obs);
                $BloqFact['BloqueoFactura']['cliente_id'] = $cliente_id;
                if($this->FacturaCobranza->save($CambEst) && $this->BloqueoFactura->save($BloqFact)){
                    $this->Vista->cerrar_ventana($vent_filtro);
                    $this->FacturaCobranza->query('COMMIT');
                    $this->Vista->mensaje("Cobranza bloqueada con exito!", 'AVISO');
                }else {
                    $this->FacturaCobranza->query('ROLLBACK');
                    $this->Vista->mensaje("Ocurrio un problema guardando, vuelva a intentarlo", 'ERROR');
                }
        }
        $this->autoRender=false;
    }

//J299573400
}
?>